<?php
namespace models\dao;

use models\Usuario;

class ImagemDAO extends GenericDAO {

	private $em;

	public function __construct($em) {
		parent::__construct($em);
		$this->em =& $em;
	}

	public function findByPrimaryKey($id) {
		return parent::findByPrimaryKey('models\Imagem', $id);
	}

	public function save($imagem) {
		parent::save($imagem);
	}

	public function delete($imagem) {
		parent::delete($imagem);
	}

	public function findAll($user) {
		if ($user->getNivel()->getId() == 1) {
			return parent::findAll('models\Imagem');
		} else {
			return $this->findByUser($user);
		}
	}

	private function findByUser($user) {
		$sql = "SELECT e FROM  models\Imagem e JOIN e.usuario u WHERE u.id = " . $user->getId() ;
		$query = $this->em->createQuery($sql);
	 	return $query->getResult();
	}

	public function find($from, $to, $type, $obs) {
		$sql = "SELECT e FROM  models\Imagem e JOIN e.observatorio o where 1 = 1 ";

		if (!empty($from) && !empty($to)) {
			$sql .= "AND e.dataCadastro >= '$from' AND e.dataCadastro <= '$to' ";
		}

		if (!empty($type)) {
			$sql .= "AND e.tipo = $type ";
		}

		if (!empty($obs)) {
			$sql .= "AND o.id = '$obs' ";
		}

		//echo $sql; exit;

		$query = $this->em->createQuery($sql);
	 	return $query->getResult();
	}

}